WINDOW 2," * * * * * M a x i D A T V 2 . 2 0 * * * * *",,16,1
WIDTH 78
ON BREAK GOSUB Ende
BREAK ON
ON ERROR GOTO Fehler
INPUT "Drucker vorhanden (J/N) ";D$
CLS
PRINT "Bitte etwas Geduld! Libraries werden geladen!!"
IF LEFT$(UCASE$(D$),1)="J" THEN
Drucker=1
END IF
LIBRARY "graphics.library"
LIBRARY "intuition.library"
Version$="Ver. 2.20, 13. 05. 1989"
OPEN "mConfig" FOR INPUT AS #1
INPUT #1,x$
INPUT #1,Drive$
INPUT #1,Pfad$
INPUT #1,d1$
INPUT #1,d2$
FOR I=0 TO 3
INPUT #1,r,g,b
PALETTE I,r,g,b
NEXT I
CLOSE #1
IF Drucker=1 THEN
LPRINT
END IF
DIM Laenge(11),Bezeichnung$(11),In$(11),Ein$(11)
MENU 1,0,1,"Projekt "
MENU 1,1,1,"Datei einrichten "
MENU 1,2,1,"Daten eingeben "
MENU 1,3,1,"Datei benutzen "
MENU 1,4,1,"Neustart "
MENU 1,5,0,"-----------------"
MENU 1,6,1,"Ende "
MENU 2,0,Drucker,"Drucker "
MENU 2,1,1,"Alles ausdrucken MIT "
MENU 2,2,1,"Alles ausdrucken OHNE "
MENU 2,3,1,"Auswahl ausdrucken "
MENU 3,0,1,"Disk "
MENU 3,1,1,"Momentanes Directory ändern "
MENU 3,2,1,"Diskettenlaufwerk ändern "
MENU 3,3,1,"Inhalt anzeigen "
MENU 3,4,1,"Datei löschen "
MENU 4,0,1,"Grafik "
MENU 4,1,1,"Datei anlegen "
MENU 4,2,1,"Grafik zeichnen "
MENU 5,0,1,"Infos "
MENU 5,1,1,"Programminfo "
RastPort&=WINDOW(8)
Hauptprogramm:
ON MENU GOSUB Men
MENU ON
ON TIMER(1) GOSUB Zeit
Hauptschleife:
MENU ON
CLS
TIMER ON
COLOR 1
LOCATE 1,1
Txt$=" Dateiverwaltung AMIGA"
CALL Text(RastPort&,SADD(Txt$),LEN(Txt$))
LOCATE 2,1
Txt$=" -----------------------"
CALL Text(RastPort&,SADD(Txt$),LEN(Txt$))
LOCATE 4,1
Txt$=" Version : "+Version$
CALL Text(RastPort&,SADD(Txt$),LEN(Txt$))
GOSUB Datum
LOCATE 6,1
Txt$=" Heutiges Datum : "+DTM$
CALL Text(RastPort&,SADD(Txt$),LEN(Txt$))
SchreibeZeit:
LOCATE 7,1
Txt$=" Uhrzeit : "+TIME$
CALL Text(RastPort&,SADD(Txt$),LEN(Txt$))
SLEEP
SLEEP
dummy$=INKEY$
GOTO Hauptschleife
Zeit:
RETURN SchreibeZeit
REM *********************************************************
REM *** Dieses Unterprogramm wertet die MENU-Funktion aus ***
REM *** und verzweigt dann zu den ausgewählten Funktionen ***
REM *********************************************************
Men:
TIMER OFF
Titel=MENU(0)
Punkt=MENU(1)
IF Titel=1 THEN
IF Punkt=1 THEN
GOSUB Einrichten
END IF
IF Punkt=2 THEN
GOSUB Eingabe
END IF
IF Punkt=3 THEN
GOSUB Benutzen
END IF
IF Punkt=4 THEN
GOSUB Loeschen
END IF
IF Punkt=6 THEN
GOSUB Ende
END IF
END IF
IF Titel=2 THEN
IF Punkt=1 THEN
GOSUB DruckeAlles
END IF
IF Punkt=2 THEN
GOSUB DruckeAllesOHNE
END IF
IF Punkt=3 THEN
GOSUB DruckeAuswahl
END IF
END IF
IF Titel=3 THEN
IF Punkt=1 THEN
GOSUB ChangeDir
END IF
IF Punkt=2 THEN
GOSUB ChangeDrive
END IF
IF Punkt=3 THEN
GOSUB ZeigeDir
END IF
IF Punkt=4 THEN
GOSUB DeleteFile
END IF
END IF
IF Titel=4 THEN
IF Punkt=1 THEN
GOSUB GrafikdateiAnlegen
END IF
IF Punkt=2 THEN
GOSUB Zeichnen
END IF
END IF
IF Titel=5 THEN
GOSUB ProgrammInfo
END IF
RETURN
REM ********************************************
REM *** Hier beginnen die Programmfunktionen ***
REM ********************************************
Einrichten:
GOSUB LoescheVariablen
WHILE Jn$<>"J"
Gesamtlaenge = 0
CLS
MENU OFF
PRINT :PRINT
FOR I=1 TO 11
LOCATE I+2,1
PRINT USING "##";I
COLOR 1,2
LOCATE 1,1
PRINT "BITTE BEZEICHNUNG EINGEBEN. * = Ende. "
COLOR 1,0
LOCATE I+2,4
PRINT Bezeichnung$(I);
LOCATE I+2,4
LINE INPUT NeueBezeichnung$
NeueBezeichnung$=LEFT$(NeueBezeichnung$,40)
IF NeueBezeichnung$<>"" THEN
Bezeichnung$(I)=NeueBezeichnung$
END IF
BeLaenge=LEN(Bezeichnung$(I))
IF BeLaenge>Maxbezlaenge THEN
Maxbezlaenge=BeLaenge
END IF
LOCATE I+2,4
PRINT Bezeichnung$(I)
PRINT STRING$(20," ")
COLOR 1,2
LOCATE 1,1
PRINT "BITTE MAXIMALE LÄNGE DER EINGABE EINGEBEN."
COLOR 1,0
LOCATE I+2,42
PRINT Laenge(I)
LOCATE I+2,42
LINE INPUT Laenge$
NeueLaenge=INT(VAL(Laenge$))
IF NeueLaenge<>0 THEN
Laenge(I)=NeueLaenge
END IF
Fertig=0
IF Bezeichnung$(I)="*" THEN
Anzmsk=I
Fertig=1
END IF
IF Laenge(I)<=0 OR Laenge(I)>50 THEN
Laenge(I)=45
END IF
IF Fertig THEN
I=16
END IF
NEXT I
CLS
FOR I=1 TO 11
LOCATE I+2,1
PRINT USING "##";I;
LOCATE I+2,4
Txt$=Bezeichnung$(I)
CALL Text(RastPort&,SADD(Txt$),LEN(Txt$))
LOCATE I+2,42
Txt$=STR$(Laenge(I))
CALL Text(RastPort&,SADD(Txt$),LEN(Txt$))
NEXT I
Anzmsk=Anzmsk-1
Jn$=""
LOCATE 1,1
PRINT "SIND DIESE EINGABEN RICHTIG (J für JA, N für NEIN) ?";
LINE INPUT "";Jn$
Jn$=LEFT$(UCASE$(Jn$),1)
WEND
Jn$="" ' fuer naechsten Aufruf loeschen
CLS
LOCATE 1,1
PRINT "Bitte geben Sie den Namen für die neue Datei ein !"
LINE INPUT Datinfnam$
IF Datinfnam$<>"" THEN
Datinfnam$="Daten/"+Datinfnam$+".INFOS"
OPEN Datinfnam$ FOR OUTPUT AS #2
WRITE #2,Maxbezlaenge
WRITE #2,Anzmsk
WRITE #2,1 ' Satznummer
FOR I=1 TO Anzmsk
WRITE #2,Bezeichnung$(I)
WRITE #2,Laenge(I)
NEXT I
CLOSE #2
END IF
RETURN
Eingabe:
GOSUB LoescheVariablen
CLS
LINE INPUT "Name der Datei ? ";Datnam$
IF Datnam$="" THEN
RETURN
END IF
Datinfnam$=Drive$+Pfad$+Datnam$+".INFOS"
Datnam$=Drive$+Pfad$+Datnam$+".DATEN"
GOSUB LeseInfos
Satz=Satznummer
OPEN "r",#1,Datnam$,550
FIELD #1,Laenge(1) AS In$(1),Laenge(2) AS In$(2),Laenge(3) AS In$(3),Laenge(4) AS In$(4),Laenge(5) AS In$(5),Laenge(6) AS In$(6),Laenge(7) AS In$(7),Laenge(8) AS In$(8),Laenge(9) AS In$(9),Laenge(10) AS In$(10),Laenge(11) AS In$(11)
WHILE Jn2$<>"N"
GOSUB Eing
FOR I=1 TO 11
LSET In$(I)=Ein$(I)
Ein$(I)=""
NEXT I
PUT #1,Satz
Satz=Satz+1
LOCATE 20,1
Jn2$=""
INPUT "Weiteren Datensatz eingeben ";Jn2$
Jn2$=LEFT$(UCASE$(Jn2$),1)
WEND
Jn2$=""
CLOSE #1
OPEN Datinfnam$ FOR OUTPUT AS #2
WRITE #2,Maxbezlaenge
WRITE #2,Anzmsk
WRITE #2,Satz
FOR I=1 TO Anzmsk
WRITE #2,Bezeichnung$(I)
WRITE #2,Laenge(I)
NEXT I
CLOSE #2
RETURN
Benutzen:
GOSUB LoescheVariablen
CLS
LINE INPUT "Name der Datei ? ";Datnam$
IF Datnam$="" THEN
RETURN
END IF
RastPort&=WINDOW(8)
Datinfnam$=Drive$+Pfad$+Datnam$+".INFOS"
Datnam$=Drive$+Pfad$+Datnam$+".DATEN"
GOSUB LeseInfos
Msatz=Satznummer-1
OPEN "r",#1,Datnam$,550
FIELD #1,Laenge(1) AS In$(1),Laenge(2) AS In$(2),Laenge(3) AS In$(3),Laenge(4) AS In$(4),Laenge(5) AS In$(5),Laenge(6) AS In$(6),Laenge(7) AS In$(7),Laenge(8) AS In$(8),Laenge(9) AS In$(9),Laenge(10) AS In$(10),Laenge(11) AS In$(11)
WHILE Co$<>"+" AND Co$<>"-" AND Co$<>"G" AND Co$<>"S" AND Co$<>"R" AND Co$<>"L" AND Co$<>"E" AND Co$<>"D" AND Co$<>"Q" AND Co$<>CHR$(139) AND Co$<>CHR$(31) AND Co$<>CHR$(30)
Co$=UCASE$(INKEY$)
WEND
IF Co$=CHR$(139) THEN
REM 139 ist der ASCII-Code der HELP-Taste
CLS
Txt$="Bedienungsinfos für den Datei-Lesen-Teil von MaxiDAT"
LOCATE 1,1
CALL Text(RastPort&,SADD(Txt$),LEN(Txt$))
Txt$="<+> - Der numerisch nächste Datensatz wird angezeigt"
LOCATE 4,1
CALL Text(RastPort&,SADD(Txt$),LEN(Txt$))
Txt$="<-> - Der numerisch letzte Datensatz wird angezeigt"
LOCATE 6,1
CALL Text(RastPort&,SADD(Txt$),LEN(Txt$))
Txt$="<G> - Sie werden nach der Nummer des gewünschten
LOCATE 8,1
CALL Text(RastPort&,SADD(Txt$),LEN(Txt$))
Txt$=" Datensatzes gefragt"
LOCATE 9,1
CALL Text(RastPort&,SADD(Txt$),LEN(Txt$))
Txt$="<S> - Geben Sie die Nummer des Feldes und dann den"
LOCATE 11,1
CALL Text(RastPort&,SADD(Txt$),LEN(Txt$))
Txt$=" Suchbegriff an. MaxiDAT sucht vom momentanen"
LOCATE 12,1
CALL Text(RastPort&,SADD(Txt$),LEN(Txt$))
Txt$=" Datensatz bis zum Schluß (Großschreibung ist berücksichtigbar)"
LOCATE 13,1
CALL Text(RastPort&,SADD(Txt$),LEN(Txt$))
Txt$="<E> - Sie können die Daten des aktuellen Satzes edi-"
LOCATE 15,1
CALL Text(RastPort&,SADD(Txt$),LEN(Txt$))
Txt$=" tieren."
LOCATE 16,1
CALL Text(RastPort&,SADD(Txt$),LEN(Txt$))
Txt$="<L> - Der Inhalt des aktuellen Datensatzes wird gelöscht."
LOCATE 18,1
CALL Text(RastPort&,SADD(Txt$),LEN(Txt$))
Txt$="<D> - Der aktuelle Datensatz wird ausgedruckt."
LOCATE 20,1
CALL Text(RastPort&,SADD(Txt$),LEN(Txt$))
Txt$="<Q> - Sie verlassen diesen Programmteil und kommen zurück"
req$=" Soll das Programm wirklich neu gestartet werden ???"
REQUESTER req$,req%
IF req%=1 THEN
RUN
END IF
WINDOW OUTPUT 2
RETURN
Ende:
req$=" Wollen Sie das Programm wirklich beenden ??"
REQUESTER req$,req%
IF req%=1 THEN
WINDOW CLOSE 2
SCREEN CLOSE 1
MENU RESET
LIBRARY CLOSE
SYSTEM
END IF
WINDOW OUTPUT 2
RETURN
DruckeAlles:
CLS
LINE INPUT "Dateiname ohne Pfadangabe -> ";Dnam$
Datnam$=Drive$+Pfad$+Dnam$+".DATEN"
Datinfnam$=Drive$+Pfad$+Dnam$+".INFOS"
GOSUB LeseInfos
LPRINT "Dateiname : ";Dnam$
LPRINT "Anzahl Datensätze :";Satznummer-1
LPRINT "Ausgedruckt am : ";
Datum DTM$
LPRINT DTM$
LPRINT "Uhrzeit : ";TIME$
LPRINT
LPRINT
CLS
OPEN "r",#1,Datnam$,550
FIELD #1,Laenge(1) AS In$(1),Laenge(2) AS In$(2),Laenge(3) AS In$(3),Laenge(4) AS In$(4),Laenge(5) AS In$(5),Laenge(6) AS In$(6),Laenge(7) AS In$(7),Laenge(8) AS In$(8),Laenge(9) AS In$(9),Laenge(10) AS In$(10),Laenge(11) AS In$(11)
PRINT "Daten ausdrucken..."
PRINT "Aktueller Datensatz : "
FOR I=1 TO Satznummer-1
LOCATE 5,5
PRINT I
GET #1,I
FOR Ii=1 TO Anzmsk
LPRINT Bezeichnung$(Ii);" : ";
LPRINT In$(Ii)
NEXT Ii
LPRINT
NEXT I
CLOSE #1
LPRINT
LPRINT
LPRINT "--- Ende der Datei ---"
LPRINT
LPRINT
LPRINT
RETURN
DruckeAllesOHNE:
CLS
LINE INPUT "Dateiname ohne Pfadangabe -> ";Dnam$
Datnam$=Drive$+Pfad$+Dnam$+".DATEN"
Datinfnam$=Drive$+Pfad$+Dnam$+".INFOS"
GOSUB LeseInfos
OPEN "r",#1,Datnam$,550
FIELD #1,Laenge(1) AS In$(1),Laenge(2) AS In$(2),Laenge(3) AS In$(3),Laenge(4) AS In$(4),Laenge(5) AS In$(5),Laenge(6) AS In$(6),Laenge(7) AS In$(7),Laenge(8) AS In$(8),Laenge(9) AS In$(9),Laenge(10) AS In$(10),Laenge(11) AS In$(11)
PRINT "Daten ausdrucken..."
PRINT "Aktueller Datensatz : "
FOR I=1 TO Satznummer-1
LOCATE 5,5
PRINT I
GET #1,I
FOR Ii=1 TO Anzmsk
LPRINT In$(Ii)
NEXT Ii
LPRINT
NEXT I
CLOSE #1
LPRINT
LPRINT
RETURN
DruckeAuswahl:
CLS
LINE INPUT "Dateiname ohne Pfadangabe -> ";Dnam$
INPUT "Satznummer ";Satz
Datnam$=Drive$+Pfad$+Dnam$+".DATEN"
Datinfnam$=Drive$+Pfad$+Dnam$+".INFOS"
GOSUB LeseInfos
LPRINT "Dateiname :";Datnam$
LPRINT "Satznummer ;";Satz
LPRINT
OPEN "r",#1,Datnam$,550
FIELD #1,Laenge(1) AS In$(1),Laenge(2) AS In$(2),Laenge(3) AS In$(3),Laenge(4) AS In$(4),Laenge(5) AS In$(5),Laenge(6) AS In$(6),Laenge(7) AS In$(7),Laenge(8) AS In$(8),Laenge(9) AS In$(9),Laenge(10) AS In$(10),Laenge(11) AS In$(11)
req$=" Welches Laufwerk ? <JA> = "+d1$+"; <NEIN> = "+d2$
REQUESTER req$,Lw%
IF Lw%=1 THEN
Drive$=d1$
ELSE
Drive$=d2$
END IF
WINDOW OUTPUT 2
RETURN
ZeigeDir:
WINDOW 6,"DIRECTORY VON DRIVE "+Drive$+", DIRECTORY "+Pfad$,,0,1
Inhalt$=Drive$+MID$(Pfad$,1,LEN(Pfad$)-1)
FILES Inhalt$
PRINT
PRINT "-- Taste drücken --"
WHILE INKEY$=""
WEND
WINDOW CLOSE 6
WINDOW OUTPUT 2
RETURN
DeleteFile:
CLS
LINE INPUT "Name (ohne Pfad- u. Laufwerksangabe) ? ";Dnam$
IF Dnam$<>"" THEN
Dnam$=Drive$+Pfad$+Dnam$
req$=" Soll dieses File wirklich gelöscht werden ???"
REQUESTER req$,req%
WINDOW OUTPUT 2
IF req%=1 THEN
KILL Dnam$
END IF
END IF
RETURN
GrafikdateiAnlegen:
GOSUB LoescheVariablen
CLS
PRINT "Datei anlegen..."
LINE INPUT "Name (ohne Pfad- u. Laufwerksangabe) ? ";Nam$
IF Nam$="" THEN
RETURN
END IF
Datinfnam$=Drive$+Pfad$+Nam$+".INFOS"
OPEN Datinfnam$ FOR OUTPUT AS #2
WRITE #2,11
WRITE #2,2
WRITE #2,1
WRITE #2,"Bezeichnung"
WRITE #2,5
WRITE #2,"Wert"
WRITE #2,5
CLOSE #2
RETURN
Zeichnen:
GOSUB LoescheVariablen
CLS
M=0
PRINT "Balkengrafik zeichnen"
LINE INPUT "Dateiname ? ";Nam$
IF Nam$="" THEN
RETURN
END IF
Datnam$=Drive$+Pfad$+Nam$+".DATEN"
Datinfnam$=Drive$+Pfad$+Nam$+".INFOS"
GOSUB LeseInfos
CLS
IF gr THEN
ERASE b$
ERASE W
END IF
gr=1
INPUT "Höchster y-Wert ";M$
M=VAL(M$)
CLS
DIM b$(Satznummer),W(Satznummer)
OPEN "R",#1,Datnam$,550
FIELD #1,Laenge(1) AS In$(1),Laenge(2) AS In$(2),Laenge(3) AS In$(3),Laenge(4) AS In$(4),Laenge(5) AS In$(5),Laenge(6) AS In$(6),Laenge(7) AS In$(7),Laenge(8) AS In$(8),Laenge(9) AS In$(9),Laenge(10) AS In$(10),Laenge(11) AS In$(11)
FOR I=1 TO Satznummer-1
GET #1,I
b$(I)=In$(1)
W(I)=VAL(In$(2))
NEXT I
LOCATE 1,1
PRINT M
LOCATE 16,1
PRINT M/2
ScaleY=350/M
ScaleX=INT(550/(Satznummer-1))
COLOR 3
FOR I=1 TO 640 STEP 10
LINE (I,0)-(I,400)
NEXT I
FOR I=1 TO 400 STEP 10
LINE (0,I)-(640,I)
NEXT I
FOR I=1 TO Satznummer-1
COLOR 1
LINE ((I*ScaleX)+3,300-W(I)*ScaleY)-(((I+1)*ScaleX)-3,350),,bf
COLOR 3,1
LOCATE 32,3+INT((I*ScaleX)/8)
PRINT b$(I);
NEXT I
COLOR 1,0
CLOSE #1
WHILE INKEY$=""
WEND
CLS
RETURN
ProgrammInfo:
CLS
LOCATE 1,1
Txt$="MaxiDAT - AMIGA"
CALL Text(RastPort&,SADD(Txt$),LEN(Txt$))
LOCATE 2,1
Txt$="---------------"
CALL Text(RastPort&,SADD(Txt$),LEN(Txt$))
LOCATE 4,1
Txt$="Version 2.20, geschrieben Mai 1989 von Christoph Hust"
CALL Text(RastPort&,SADD(Txt$),LEN(Txt$))
LOCATE 6,1
Txt$="Änderung zu Version 2.10:"
CALL Text(RastPort&,SADD(Txt$),LEN(Txt$))
LOCATE 7,1
Txt$="Schnellere Textausgabe, Uhr im Hauptmenü läuft endlich, Fehler verbessert,"
CALL Text(RastPort&,SADD(Txt$),LEN(Txt$))
LOCATE 8,1
Txt$="Config-Datei."
CALL Text(RastPort&,SADD(Txt$),LEN(Txt$))
LOCATE 10,1
Txt$="Wenn Ihnen das Programm gefällt, bitte senden Sie ungefähr 20 DM an"
CALL Text(RastPort&,SADD(Txt$),LEN(Txt$))
LOCATE 11,1
Txt$="folgende Adresse:"
CALL Text(RastPort&,SADD(Txt$),LEN(Txt$))
LOCATE 13,1
Txt$=" CHRISTOPH HUST"
CALL Text(RastPort&,SADD(Txt$),LEN(Txt$))
LOCATE 14,1
Txt$=" MAINZER STRASSE 30"
CALL Text(RastPort&,SADD(Txt$),LEN(Txt$))
LOCATE 15,1
Txt$=" D-5407 BOPPARD 1"
CALL Text(RastPort&,SADD(Txt$),LEN(Txt$))
LOCATE 17,1
COLOR 2
Txt$="MAXIDAT IST EIN PUBLIC DOMAIN PROGRAMM. ES DARF FREI KOPIERT WERDEN."